#ifndef BASIC_TIME_H
#define BASIC_TIME_H

#include "coretypes.h"

namespace core
{

class BasicTime
{
public:
    BasicTime();
    BasicTime(uint value);
    BasicTime(uint value, uint unit);
    ~BasicTime();

    uint getTime() const;
    uint getTimeUnit() const;

    void setTime(uint value);
    void setTimeUnit(uint value);

    bool add(uint value);
    bool sub(uint value);

    BasicTime& operator++();
    BasicTime operator++(int);

    BasicTime& operator--();
    BasicTime operator--(int);

    bool operator==(const BasicTime& other) const;
    bool operator!=(const BasicTime& other) const;

    bool operator<(const BasicTime& other) const;
    bool operator<=(const BasicTime& other) const;

    bool operator>(const BasicTime& other) const;

private:
    uint m_value;
    uint m_unit;
};

} // namespace core

#endif
